﻿Imports CControl
Public Class Frm_Evento_Agregar

    Dim index_rows_bebidas As Integer = 0
    Dim index_rows_logistica As Integer = 0
    Dim _idEvento As Integer = 0
    Dim _idClienteEvento As Integer = 0
    Dim _Cliente As New Cls_Cliente
    Dim _total_precio_bebidas As Double = 0
    Dim _total_precio_logistica As Double = 0
    Dim _total_detalle As Double = 0

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click
        Me.Close()
    End Sub

    Private Sub Frm_Evento_Agregar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LLenar_cmbTipoEvento()
        LLenar_cmbMarcas()
        LLenar_cmbBebidas()
        LLenar_cmbLogistica()
        mtd_NumerOficio() 'se genera automaticamente el numero de oficio
    End Sub

    Sub LLenar_cmbTipoEvento()
        cmbTipoEvento.DataSource = CControl.Cls_TipoEvento.mtd_ListarTipoEvento()
        cmbTipoEvento.DisplayMember = "EVTnombre"
        cmbTipoEvento.ValueMember = "EVTid_tipo_evento"
    End Sub

    Sub LLenar_cmbBebidas()
        cmbBebida.DataSource = Cls_Logistica.mtd_Listar_Activos_Bebidas()
        cmbBebida.DisplayMember = "ACTnombre"
        cmbBebida.ValueMember = "ACTid_activos"
    End Sub

    Sub LLenar_cmbLogistica()
        cmbActivo.DataSource = Cls_Logistica.mtd_Listar_Activos_Logistica()
        cmbActivo.DisplayMember = "ACTnombre"
        cmbActivo.ValueMember = "ACTid_activos"
    End Sub

    Sub LLenar_cmbMarcas()
        cmbMarcaAuspiciadora.DataSource = CControl.Cls_Evento.mtd_ListarMarca()
        cmbMarcaAuspiciadora.DisplayMember = "MARnombre"
        cmbMarcaAuspiciadora.ValueMember = "MARid_marca"

        cmbMarcaActivo.DataSource = CControl.Cls_Evento.mtd_ListarMarca()
        cmbMarcaActivo.DisplayMember = "MARnombre"
        cmbMarcaActivo.ValueMember = "MARid_marca"

        cmbMarcaBebida.DataSource = CControl.Cls_Evento.mtd_ListarMarca()
        cmbMarcaBebida.DisplayMember = "MARnombre"
        cmbMarcaBebida.ValueMember = "MARid_marca"
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregarBebida.Click
        Dim _precio As Double
        Dim _total_precio_item As Double
        Dim _total As Double
        Try            
            _precio = Cls_Logistica.mtd_Obtener_Bebidas_Precio(cmbBebida.SelectedValue)
            'MessageBox.Show(_precio)
            _total_precio_item = _precio * Integer.Parse(txtCantidadBebidas.Text)
            _total_precio_bebidas = _total_precio_bebidas + _total_precio_item

            DGVbebidas.Rows.Add()
            DGVbebidas.Item(0, index_rows_bebidas).Value = cmbBebida.Text
            DGVbebidas.Item(1, index_rows_bebidas).Value = cmbMarcaBebida.Text
            DGVbebidas.Item(2, index_rows_bebidas).Value = txtCantidadBebidas.Text
            DGVbebidas.Item(3, index_rows_bebidas).Value = cmbBebida.SelectedValue   'id del producto bebida 
            DGVbebidas.Item(4, index_rows_bebidas).Value = _total_precio_item            
            _total = _total_precio_bebidas + _total_precio_logistica
            _total_detalle = _total
            txtTotal.Text = _total_detalle.ToString            
            index_rows_bebidas = index_rows_bebidas + 1
        Catch ex As Exception
            'MessageBox.Show("NO SE PUDO AGREGAR FILA")
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub btnAgregarLogistica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregarLogistica.Click
        Dim _precio As Double
        Dim _total_precio_item As Double
        Dim _total As Double
        Try
            _precio = Cls_Logistica.mtd_Obtener_Logistica_Precio(cmbActivo.SelectedValue)
            'MessageBox.Show(_precio)
            _total_precio_item = _precio * Integer.Parse(txtCantidadLogistica.Text)
            _total_precio_logistica = _total_precio_logistica + _total_precio_item

            DGVLogistica.Rows.Add()
            DGVLogistica.Item(0, index_rows_logistica).Value = cmbActivo.Text
            DGVLogistica.Item(1, index_rows_logistica).Value = cmbMarcaActivo.Text
            DGVLogistica.Item(2, index_rows_logistica).Value = txtCantidadLogistica.Text
            DGVLogistica.Item(3, index_rows_logistica).Value = cmbActivo.SelectedValue 'id del producto logistica
            DGVLogistica.Item(4, index_rows_logistica).Value = _total_precio_item
            _total = _total_precio_bebidas + _total_precio_logistica
            _total_detalle = _total
            txtTotal.Text = _total_detalle.ToString
            index_rows_logistica = index_rows_logistica + 1
        Catch ex As Exception
            'MessageBox.Show("NO SE PUDO AGREGAR FILA")
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscarCliente.Click
        Dim _dni As String
        _dni = InputBox("Ingrese DNI del Cliente", "Buscar Cliente", "", -1, -1)
        _Cliente = Cls_Cliente.mtd_BuscarCliente(_dni)

        txtNombreCliente.Text = _Cliente.nombre_cliente
        txtApellidoCliente.Text = _Cliente.apellido_cliente
        txtDNI.Text = _Cliente.dni_cliente
        txtTelefonoCliente.Text = _Cliente.telefono_cliente
        txtDireccionCliente.Text = _Cliente.direccion_cliente
        txtReferencia.Text = _Cliente.referencia_cliente

        'MessageBox.Show(_Cliente.nombre_cliente)
    End Sub

    Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click
        mtd_AgregarEvento()
        mtd_ObtenerIDEvento()
        'MsgBox(_idEvento)
        mtd_AgregarDetalle_Bebidas()
        mtd_AgregarDetalle_Activos()
    End Sub

    Private Sub mtd_LimpiarFormulario()
        txtNombreEvento.Text = ""
        txtHoraInicio.Text = ""
        txtLocalEvento.Text = ""
        txtObservaciones.Text = ""
        txtNombreCliente.Text = ""
        txtApellidoCliente.Text = ""
        txtDireccionCliente.Text = ""
        txtTelefonoCliente.Text = ""
        txtDNI.Text = ""
        txtAnticipo.Text = "00.00"
        txtTotal.Text = "00.00"

    End Sub

    Private Sub mtd_ObtenerIDEvento()
        Dim _Evento As New Cls_Evento
        _Evento.id_cliente = _idClienteEvento
        _idEvento = _Evento.mtd_BuscarUltimoIDEvento()
    End Sub

    Private Sub mtd_AgregarDetalle_Bebidas()
        Dim _bebida As String
        Dim _marca As String
        Dim _cantidad As Integer
        Dim _idBebida As Integer
        Dim _DetalleEvento As New Cls_DetalleEvento

        If Not DGVbebidas.Rows.Count - 1 = 0 Then
            For index = 1 To DGVbebidas.Rows.Count - 1
                _bebida = DGVbebidas.Item(0, index - 1).Value
                _marca = DGVbebidas.Item(1, index - 1).Value
                _cantidad = DGVbebidas.Item(2, index - 1).Value
                _idBebida = DGVbebidas.Item(3, index - 1).Value
                'MsgBox("FILA = " & index & " BEBIDA = " & _bebida & " MARCA = " & _marca & " CANTIDAD = " & _cantidad & " ID = " & _idBebida)
                _DetalleEvento.id_evento = _idEvento
                _DetalleEvento.id_activos = _idBebida
                _DetalleEvento.cantidad = _cantidad
                _DetalleEvento.mtd_AgregarDetalleEvento()
            Next
        End If
    End Sub

    Private Sub mtd_AgregarDetalle_Activos()
        Dim _Activo As String
        Dim _marca As String
        Dim _cantidad As Integer
        Dim _idActivo As Integer
        Dim _DetalleEventoLogistica As New Cls_DetalleEvento

        If Not DGVLogistica.Rows.Count - 1 = 0 Then
            For index = 1 To DGVLogistica.Rows.Count - 1
                _Activo = DGVLogistica.Item(0, index - 1).Value
                _marca = DGVLogistica.Item(1, index - 1).Value
                _cantidad = DGVLogistica.Item(2, index - 1).Value
                _idActivo = DGVLogistica.Item(3, index - 1).Value
                _DetalleEventoLogistica.id_evento = _idEvento
                _DetalleEventoLogistica.id_activos = _idActivo
                _DetalleEventoLogistica.cantidad = _cantidad
                _DetalleEventoLogistica.mtd_AgregarDetalleEvento()
                'MsgBox("FILA = " & index & " BEBIDA = " & _bebida & " MARCA = " & _marca & " CANTIDAD = " & _cantidad & " ID = " & _idBebida)
            Next
        End If
    End Sub

    Private Sub mtd_AgregarEvento()
        Dim _Cliente As New Cls_Cliente
        Dim _Evento As New Cls_Evento
        Dim _idCliente As Integer

        _Cliente.nombre_cliente = txtNombreCliente.Text
        _Cliente.apellido_cliente = txtApellidoCliente.Text
        _Cliente.dni_cliente = txtDNI.Text
        _Cliente.direccion_cliente = txtDireccionCliente.Text
        _Cliente.telefono_cliente = txtTelefonoCliente.Text
        _Cliente.referencia_cliente = txtReferencia.Text

        If (Cls_Cliente.mtd_ValidarIDCliente(_Cliente.dni_cliente)) Then
            'mtd_AgregarEvento()
            _idCliente = Cls_Cliente.mtd_BuscarIDCliente(_Cliente.dni_cliente)
            _idClienteEvento = Cls_Cliente.mtd_BuscarIDCliente(_Cliente.dni_cliente)
            _Evento.numero_oficio = Integer.Parse(txtNumeroEvento.Text)
            _Evento.hora_incio = txtHoraInicio.Text
            _Evento.fecha_evento = dtpFechaInicio.Text
            _Evento.id_tipo_evento = cmbTipoEvento.SelectedValue
            _Evento.marca = cmbMarcaAuspiciadora.Text
            _Evento.local = txtLocalEvento.Text
            _Evento.importancia = cmbImportancia.SelectedIndex + 1
            _Evento.nombre_evento = txtNombreEvento.Text
            _Evento.descripcion = txtObservaciones.Text
            _Evento.id_cliente = _idCliente
            _Evento.actual_pago = Decimal.Parse(txtAnticipo.Text)
            _Evento.total_pago = Decimal.Parse(txtTotal.Text)
            _Evento.evento_distribuidora = "YIQUE E.I.R.L."
            _Evento.evento_supervisor = "<NO EXISTE SUPERVISOR>"
            _Evento.evento_telefono_distribuidora = "<NO HAY TELEFONO>"
            _Evento.evento_institucion_organizadora = "YIQUE E.I.R.L."
            _Evento.estado_evento = 0
            _Evento.direccion_local = txtLocalEvento.Text
            _Evento.direccion_referencia = txtLocalEvento.Text
            _Evento.fecha_oficio = Date.Now.ToString
            If _Evento.mtd_AgregarEvento() Then
                MessageBox.Show("Evento Agregado")
                mtd_NumerOficio()
            End If
        Else
            If (_Cliente.mtd_AgregarCliente()) Then
                _idCliente = Cls_Cliente.mtd_BuscarIDCliente(_Cliente.dni_cliente)
                _Evento.numero_oficio = Integer.Parse(txtNumeroEvento.Text)
                _Evento.hora_incio = txtHoraInicio.Text
                _Evento.fecha_evento = dtpFechaInicio.Text
                _Evento.id_tipo_evento = cmbTipoEvento.SelectedValue
                _Evento.marca = cmbMarcaAuspiciadora.Text
                _Evento.local = txtLocalEvento.Text
                _Evento.importancia = cmbImportancia.SelectedIndex + 1
                _Evento.nombre_evento = txtNombreEvento.Text
                _Evento.descripcion = txtObservaciones.Text
                _Evento.id_cliente = _idCliente
                _Evento.actual_pago = Decimal.Parse(txtAnticipo.Text)
                _Evento.total_pago = Decimal.Parse(txtTotal.Text)
                _Evento.evento_distribuidora = "YIQUE E.I.R.L."
                _Evento.evento_supervisor = "<NO EXISTE SUPERVISOR>"
                _Evento.evento_telefono_distribuidora = "<NO HAY TELEFONO>"
                _Evento.evento_institucion_organizadora = "YIQUE E.I.R.L."
                _Evento.estado_evento = 0
                _Evento.direccion_local = txtLocalEvento.Text
                _Evento.direccion_referencia = txtLocalEvento.Text
                _Evento.fecha_oficio = Date.Now.ToString
                If _Evento.mtd_AgregarEvento() Then
                    MessageBox.Show("Evento Agregado")
                    mtd_NumerOficio()
                End If
                'mtd_AgregarEvento()
            End If
        End If
    End Sub

    Private Sub mtd_NumerOficio()
        Dim numero_evento As Integer = Cls_Evento.mtd_BuscarUltimoNumeroOficio() + 1
        txtNumeroEvento.Text = numero_evento.ToString()
    End Sub


    Private Sub btnQuitarBebida_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuitarBebida.Click
        Dim _item_row As Integer
        Dim _item_precio As Double
        _item_row = DGVbebidas.CurrentRow.Index
        Try
            _item_precio = DGVbebidas.Item(4, _item_row).Value
            DGVbebidas.Rows.RemoveAt(_item_row)
            '_total = Double.Parse(txtTotal.Text)
            '_total = _total_detalle
            _total_precio_bebidas = _total_precio_bebidas - _item_precio
            _total_detalle = _total_detalle - _item_precio
            txtTotal.Text = _total_detalle.ToString()
            index_rows_bebidas = index_rows_bebidas - 1
        Catch ex As Exception
            MessageBox.Show("NO SE PUEDE ELIMINAR LA FILA")
        End Try
    End Sub

    Private Sub btnQuitarLogistica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuitarLogistica.Click
        Dim _item_row As Integer
        Dim _item_precio As Double
        _item_row = DGVLogistica.CurrentRow.Index
        Try
            _item_precio = DGVLogistica.Item(4, _item_row).Value
            DGVLogistica.Rows.RemoveAt(_item_row)
            _total_precio_logistica = _total_precio_logistica - _item_precio
            _total_detalle = _total_detalle - _item_precio
            txtTotal.Text = _total_detalle.ToString()
            index_rows_logistica = index_rows_logistica - 1
        Catch ex As Exception
            MessageBox.Show("NO SE PUEDE ELIMINAR LA FILA")
        End Try
    End Sub
End Class
